--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
android/app/src/main/java/com/meshchatx/MainActivity.java d2c2d7a02bdcb30630892684ed3395e1fbef27b7 (d2c2d7a0) Text, 3.28 KB
Tff7b72package T7ee787com.meshchatxTb4b4b4;
Tff7b72import T7ee787android.annotation.SuppressLintTb4b4b4;
Tff7b72import T7ee787android.os.BundleTb4b4b4;
Tff7b72import T7ee787android.webkit.WebSettingsTb4b4b4;
Tff7b72import T7ee787android.webkit.WebViewTb4b4b4;
Tff7b72import T7ee787android.webkit.WebViewClientTb4b4b4;
Tff7b72import T7ee787android.widget.ProgressBarTb4b4b4;
Tff7b72import T7ee787androidx.appcompat.app.AppCompatActivityTb4b4b4;
Tff7b72import T7ee787com.chaquo.python.PythonTb4b4b4;
Tff7b72import T7ee787com.chaquo.python.android.AndroidPlatformTb4b4b4;
Tff7b72public Tff7b72class T56d364MainActivity Tff7b72extends Te6edf3AppCompatActivity Tb4b4b4{
Tff7b72private Te6edf3WebView Te6edf3webViewTb4b4b4;
Tff7b72private Te6edf3ProgressBar Te6edf3progressBarTb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Te6edf3String Te6edf3SERVER_URL Tff7b72= Ta5d6ff"Ta5d6ffhttps://127.0.0.1:8000Ta5d6ff"Tb4b4b4;
Tff7b72private Tff7b72static Tff7b72final Tffa657int Te6edf3SERVER_PORT Tff7b72= T79c0ff8000Tb4b4b4;
Tf0883e@SuppressLintTb4b4b4(Ta5d6ff"Ta5d6ffSetJavaScriptEnabledTa5d6ff"Tb4b4b4)
Tf0883e@Override
Tff7b72protected Tffa657void Td2a8ffonCreateTb4b4b4(Te6edf3Bundle Te6edf3savedInstanceStateTb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onCreateTb4b4b4(Te6edf3savedInstanceStateTb4b4b4)Tb4b4b4;
Te6edf3setContentViewTb4b4b4(Te6edf3RTb4b4b4.Te6edf3layoutTb4b4b4.Te6edf3activity_mainTb4b4b4)Tb4b4b4;
Te6edf3webView Tff7b72= Te6edf3findViewByIdTb4b4b4(Te6edf3RTb4b4b4.Te6edf3idTb4b4b4.Te6edf3webViewTb4b4b4)Tb4b4b4;
Te6edf3progressBar Tff7b72= Te6edf3findViewByIdTb4b4b4(Te6edf3RTb4b4b4.Te6edf3idTb4b4b4.Te6edf3progressBarTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3PythonTb4b4b4.Te6edf3isStartedTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3PythonTb4b4b4.Te6edf3startTb4b4b4(Tff7b72new Te6edf3AndroidPlatformTb4b4b4(Tff7b72thisTb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3WebSettings Te6edf3webSettings Tff7b72= Te6edf3webViewTb4b4b4.Te6edf3getSettingsTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setJavaScriptEnabledTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setDomStorageEnabledTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setDatabaseEnabledTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setAllowFileAccessTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setAllowContentAccessTb4b4b4(Tff7b72trueTb4b4b4)Tb4b4b4;
Te6edf3webSettingsTb4b4b4.Te6edf3setMixedContentModeTb4b4b4(Te6edf3WebSettingsTb4b4b4.Te6edf3MIXED_CONTENT_ALWAYS_ALLOWTb4b4b4)Tb4b4b4;
Te6edf3webViewTb4b4b4.Te6edf3setWebViewClientTb4b4b4(Tff7b72new Te6edf3WebViewClientTb4b4b4(Tb4b4b4) Tb4b4b4{
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonPageFinishedTb4b4b4(Te6edf3WebView Te6edf3viewTb4b4b4, Te6edf3String Te6edf3urlTb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onPageFinishedTb4b4b4(Te6edf3viewTb4b4b4, Te6edf3urlTb4b4b4)Tb4b4b4;
Te6edf3progressBarTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3GONETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonPageStartedTb4b4b4(Te6edf3WebView Te6edf3viewTb4b4b4, Te6edf3String Te6edf3urlTb4b4b4, Te6edf3androidTb4b4b4.Te6edf3graphicsTb4b4b4.Te6edf3Bitmap Te6edf3faviconTb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onPageStartedTb4b4b4(Te6edf3viewTb4b4b4, Te6edf3urlTb4b4b4, Te6edf3faviconTb4b4b4)Tb4b4b4;
Te6edf3progressBarTb4b4b4.Te6edf3setVisibilityTb4b4b4(Te6edf3androidTb4b4b4.Te6edf3viewTb4b4b4.Te6edf3ViewTb4b4b4.Te6edf3VISIBLETb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@SuppressLintTb4b4b4(Ta5d6ff"Ta5d6ffWebViewClientOnReceivedSslErrorTa5d6ff"Tb4b4b4)
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonReceivedSslErrorTb4b4b4(Te6edf3WebView Te6edf3viewTb4b4b4, Te6edf3androidTb4b4b4.Te6edf3webkitTb4b4b4.Te6edf3SslErrorHandler Te6edf3handlerTb4b4b4, Te6edf3androidTb4b4b4.Te6edf3netTb4b4b4.Te6edf3httpTb4b4b4.Te6edf3SslError Te6edf3errorTb4b4b4) Tb4b4b4{
T8b949e// Ignore SSL certificate errors for localhost
Te6edf3handlerTb4b4b4.Te6edf3proceedTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Te6edf3startMeshChatServerTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72new Te6edf3ThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3ThreadTb4b4b4.Te6edf3sleepTb4b4b4(T79c0ff2000Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3InterruptedException Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3eTb4b4b4.Te6edf3printStackTraceTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Te6edf3runOnUiThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3loadUrlTb4b4b4(Te6edf3SERVER_URLTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3startTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tff7b72private Tffa657void Td2a8ffstartMeshChatServerTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72new Te6edf3ThreadTb4b4b4(Tb4b4b4(Tb4b4b4) Tff7b72-Tff7b72> Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3Python Te6edf3py Tff7b72= Te6edf3PythonTb4b4b4.Te6edf3getInstanceTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3pyTb4b4b4.Te6edf3getModuleTb4b4b4(Ta5d6ff"Ta5d6ffmeshchat_wrapperTa5d6ff"Tb4b4b4)Tb4b4b4.Te6edf3callAttrTb4b4b4(Ta5d6ff"Ta5d6ffstart_serverTa5d6ff"Tb4b4b4, Te6edf3SERVER_PORTTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4(Te6edf3Exception Te6edf3eTb4b4b4) Tb4b4b4{
Te6edf3eTb4b4b4.Te6edf3printStackTraceTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}Tb4b4b4)Tb4b4b4.Te6edf3startTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tf0883e@Override
Tff7b72public Tffa657void Td2a8ffonBackPressedTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3webViewTb4b4b4.Te6edf3canGoBackTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3goBackTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72else Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onBackPressedTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tf0883e@Override
Tff7b72protected Tffa657void Td2a8ffonDestroyTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72superTb4b4b4.Te6edf3onDestroyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Te6edf3webView Tff7b72!Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Te6edf3webViewTb4b4b4.Te6edf3destroyTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tb4b4b4}
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────